home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / mtgrap1c / demo13.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-13  |  3.1 KB  |  127 lines

  1. /*                                                            
  2.   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  3.   ▒                                                          ▒
  4.   ▒                                                          ▒
  5.   ▒             Neuromancer's Graphics Library               ▒
  6.   ▒                     Version 1.0c                         ▒
  7.   ▒                                                          ▒
  8.   ▒      This program demonstrates the keyboard handler.     ▒
  9.   ▒                                                          ▒ 
  10.   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  11.   ▒                                                          ▒
  12.   ▒     Project:    MTLIB01.LIB                              ▒
  13.   ▒                 DEMO13.CPP                               ▒
  14.   ▒                                                          ▒ 
  15.   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  16. */
  17.  
  18. #include <iostream.h>
  19. #include <conio.h>
  20. #include <stdlib.h>
  21. #include <iostream.h>
  22. #include "video.h"
  23. #include "key.h"
  24. #include "bitmap.h"
  25. #include "palette.h"
  26.  
  27. extern    SPRITE_HEADER *sprite_header;
  28. extern  byte key[128];
  29. int    xcor,ycor;
  30. int    flag=0;
  31.  
  32. void getkey()
  33. {
  34.  
  35.      if (key[ARROW_UP]==1 && ycor>1)
  36.      {
  37.                ycor -= 5;
  38.         if (flag < sprite_header->total)
  39.             flag += 1;
  40.         else
  41.             flag  = 0;
  42.      }
  43.      if (key[ARROW_DOWN]==1 && ycor<190)
  44.      {
  45.                ycor += 5;
  46.         if (flag > 0)
  47.             flag -= 1;
  48.         else
  49.             flag  = sprite_header->total;
  50.      }
  51.      if (key[ARROW_LEFT]==1 && xcor >1 )
  52.      {
  53.                xcor -= 5;
  54.         if (flag < sprite_header->total)
  55.             flag += 1;
  56.         else
  57.             flag  = 0;
  58.      }
  59.      if (key[ARROW_RIGHT]==1 && xcor < 310)
  60.      {
  61.                xcor += 5;
  62.         if (flag > 0)
  63.             flag -= 1;
  64.         else
  65.             flag  = sprite_header->total;        
  66.      }
  67. }
  68.  
  69. block page1,page2;
  70.  
  71. void main()
  72. {
  73.      SPRITE    **sprite;
  74.      byte      palette[768];
  75.  
  76.  
  77.      if ((sprite=mtLoadBlit("testbmp",palette)) == NULL)
  78.      {
  79.        mtSetTextMode();
  80.        cout <<"Error loading testbmp.blt sprite file!!" << endl;
  81.        exit(0);
  82.      }
  83.  
  84.      xcor = 10; ycor = 10;
  85.  
  86.      mtSetVGAMode();
  87.      mtKeyInst();
  88.      mtSetPal(palette,0,255);
  89.  
  90.      if ((page1=mtAllocPage(0,0,319,199))==NULL)
  91.      {
  92.        mtKeyUninst();
  93.        mtSetTextMode();
  94.        cout <<"Error!!!! Page 1 error!"<< endl;
  95.        exit(0);
  96.      }
  97.  
  98.      if ((page2=mtAllocPage(0,0,319,199))==NULL)
  99.      {
  100.        mtFreePage(PAGE_1);
  101.        mtKeyUninst();
  102.        mtSetTextMode();
  103.        cout <<"Error!!!! Page 2 error "<< endl;
  104.        exit(0);
  105.      }
  106.  
  107.      mtSetPage(PAGE_1);
  108.      mtClrScr(0);
  109.      mtLoadPCX("pacman.dat");
  110.      mtCopyPage(PAGE_1,PAGE_2);
  111.  
  112.      while(!key[KEY_ESC])
  113.      {
  114.     getkey();
  115.     mtCPutSprite(xcor, ycor,sprite[flag]->width,sprite[flag]->height,sprite[flag]->data);
  116.  
  117.      mtFlipPage(PAGE_1);
  118.     mtCopyBlk(xcor,ycor,xcor+(sprite[flag]->width)-1,ycor+(sprite[flag]->height)-1,xcor,ycor,PAGE_2,PAGE_1);         
  119.      }
  120.  
  121.      mtFreePage(page1);
  122.      mtFreePage(page2);
  123.      mtFreeBlit(sprite);
  124.      mtKeyUninst();
  125.      mtSetTextMode();
  126.      
  127. }